package com.jzo2o.market.service;

import com.jzo2o.common.model.PageResult;
import com.jzo2o.market.model.domain.Coupon;
import com.baomidou.mybatisplus.extension.service.IService;
import com.jzo2o.market.model.dto.request.CouponOperationPageQueryReqDTO;
import com.jzo2o.market.model.dto.response.CouponInfoResDTO;

import java.util.List;

/**
 * <p>
 *  服务类
 * </p>
 *
 * @author itcast
 * @since 2023-09-16
 */
public interface ICouponService extends IService<Coupon> {


    /**
     * @param dto
     * @return com.jzo2o.common.model.PageResult<com.jzo2o.market.model.dto.response.CouponInfoResDTO>
     * @description: 运营端优惠券领取记录分页查询
     **/
    PageResult<CouponInfoResDTO> pageQuery(CouponOperationPageQueryReqDTO dto);

    /**
     * @param status 优惠券状态，1：未使用，2：已使用，3：已过期
     * @param lastId 上一次查询最后一张优惠券id
     * @return java.util.List<com.jzo2o.market.model.dto.response.CouponInfoResDTO>
     * @description: 用户端我的优惠券列表
     **/
    List<CouponInfoResDTO> myCouponList(Integer status, Long lastId);

    /**
     * 过期优惠券处理
     */
    void processExpireCoupon();
}
